﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

namespace AgendaManager.Service
{
    public class PaisDAO : DAOBase
    {
        public static Pais NuevoPais(Pais pais)
        {
            try
            {
                int paisId = GetNextId(pais);

                if (paisId != 0)
                {
                    pais.Id = paisId;
                    if (CreateEntity(pais))
                        return pais;

                    throw new Exception("No se pudo crear el País");
                }
                else
                    throw new Exception("No se pudo obtener el siguiente id de la entidad: País");
            }
            catch (Exception)
            {

                throw;
            }
        }

        internal static List<Pais> RetrieveEntities(object dto, string filtro)
        {
            List<Pais> dtos = new List<Pais>();

            DataTable dt = GetDataTable(dto, filtro);

            if (dt.Rows.Count > 0)
                dtos = LlenarPaises(dto, dt);

            return dtos;
        }

        private static List<Pais> LlenarPaises(object dto, DataTable dt)
        {
            List<Pais> dtos = new List<Pais>();

            foreach (DataRow dr in dt.Rows)
            {
                Pais aux = new Pais();
                PoblarObjetoDesdeDataRow(aux, dr);

                dtos.Add(aux);
            }

            return dtos;
        }

        internal static List<Pais> RetrieveEntitiesWhere(object dto, string where)
        {
            List<Pais> dtos = new List<Pais>();

            DataTable dt = GetDataTableWhere(dto, where);

            if (dt.Rows.Count > 0)
                dtos = LlenarPaises(dto, dt);

            return dtos;
        }
    }
}